package com.huike.clues.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import com.huike.common.core.domain.entity.SysMenu;

/**
 * 菜单表 数据层
 *
 *
 */
@Mapper
public interface SysMenuMapper {
    /**
     * 根据用户ID查询权限
     * @param userId 用户ID
     * @return 权限列表
     */
    public List<String> selectMenuPermsByUserId(Long userId);

    /**
     * 根据用户ID查询菜单
     * @return 菜单列表
     */
    public List<SysMenu> selectMenuTreeAll();

    /**
     * 根据用户ID查询菜单
     * @param userId 用户ID
     * @return 菜单列表
     */
    public List<SysMenu> selectMenuTreeByUserId(Long userId);

    /**
     * 新增菜单
     *
     * @param sysMenu
     */
    void insertMenu(SysMenu sysMenu);


    /**
     * 修改菜单
     *
     * @param sysMenu
     */
    void updateMenu(SysMenu sysMenu);

    /**
     * 获取菜单列表
     *
     * @param sysMenu
     * @return
     */
    List<SysMenu> selectMenuList(SysMenu sysMenu);

    /**
     * 通过角色id查询菜单列表
     * @return
     */
    List<SysMenu> selectMenuListByRoleId();

    /**
     * 删除关联关系接口
     * 不要删除不要删除这是删除角色与菜单关联的接口
     * copyright By Jiyu update by yurine
     * @param menuId-
     */
    void deleteRoleMenuById(Long menuId);

    /**
     *根据菜单编号获取详细信息
     *
     * @param menuId
     * @return
     */
    SysMenu selectMenuById(Long menuId);


    void deleteMenuById(Long menuId);

    /**
     * 查询菜单id是否有子id
     * @param menuId
     * @return
     */
    int hasChildByMenuId(Long menuId);
}
